{{tag>8.10 intrepid réseau internet mail tutoriel brouillon}}
====== Comment envoyer un mail par SMTP en ligne de commande ======
====== Et envoyer l'IP de sa box automatiquement ======
===== Comment envoyer un mail par SMTP en ligne de commande =====
==== Installation ====
[[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt://msmtp|msmtp]]**.

Si vous aviez déjà installé des paquets désormais inutiles, un petit rappel sur [[:tutoriel:comment_supprimer_un_paquet|la suppression d'un paquet]].

==== Configuration ====
  * [[:tutoriel:comment_editer_un_fichier|Editer/créer le fichier]].msmtp dans le home directory, depuis son propre compte.
<note important>Ne pas utiliser de commande sudo. C'est bien l'utilisateur qui envoie les mails.</note>
<file>nano .msmtp</file>
  account default
  host smtp.monfai.fr
  from prenom.nom@monfai.fr
  auth off
  #auth on
  #si jamais auth off ne passe pas
  user prenom.nom
  #si votre fai vous identifie plus clairement si vous reprécisez le domaine, alors plutôt cela :
  #user prenom.nom@fai.fr
  password monmotdepasse

  * Dissimuler ce fichier qui contient votre mot de passe en clair
<file>chmod 600 .msmtp</file>
==== Utilisation ====
  * Pour envoyer le contenu d'un fichier texte comme message:
<file>cat readme.txt | msmtp johnny@liday.ch</file>
  * Pour envoyer un fichier binaire, ou compressé en pièce jointe :
<file>uuencode application.zip | msmtp johnny@liday.ch</file>
==== Vérification ====
  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu


----


====== Envoyer l'IP de sa box automatiquement ======

===== Installation =====
S'il vous manque GET [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://GET|GET]]**

===== Récupérer l'IP externe de sa box =====
<file>GET whatismyip.org</file>
  * Cette commande renvoie des erreurs une fois sur deux, donc on va la lancer 2 ou 3 fois dans un script et récupérer l'IP dans un fichier.
<file>nano getip</file>
  GET whatismyip.org > .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
  sleep 1
  GET whatismyip.org >> .myip
  echo "" >> .myip
<file>sh getip</file>
<file>cat .myip</file>
  92.122.18.135
  92.122.18.135
  92.122.18.135

===== Envoyer son IP de box à son courriel au bureau =====
  * On a vu cela juste avant :
<file>cat .myip | msmtp johnny@whitehouse.gov</file>

===== Automatiser l'envoi de son IP de box vers le bureau =====
  * [[:tutoriel:comment_editer_un_fichier|Modifier le fichier]] getip pour qu'il intègre la commande msmtp à la dernière ligne:
<file>nano getip</file>
  ...
  cat .myip | msmtp johnny@whitehouse.gov

  * Rendre le script exécutable :
<file>chmod 700 getip</file>

==== Utilisation ====
  * Lancer le script
<file>sh getip</file>
==== Vérification ====
  * Depuis votre client de messagerie, vérifiez que vous avez bien reçu le message attendu, soit 3 lignes avec l'adresse IP de la maison blanche ... si c'est là que votre box est branchée.


----

====== Programmation de l'envoi automatique ======
===== Par la crontab =====
Le système [[..\cron|crontab]] intégré à unix/linux permet une programmation simple de l'exécution de commandes et scripts.
==== Modification de la crontab ====
  * Si la crontab de l'utilisateur existe, on la redirige vers un fichier
<file>crontab -l > cron</file>
<note important>On évite systématique l'édition de la crontab par crontab -e, parce la perte de 50 lignes de programmation sur un serveur de production, ça fait toujours chaud aux oreilles !</note>
  * Puis on [[:tutoriel:comment_editer_un_fichier|modifie/crée le fichier]] cron en y ajoutant notre ligne de programmation :
<file>nano cron</file>
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  # à 08:23 12:23 15:23 et 18:23 tous les jours du lundi au vendredi
  # parce que les soirs et week-end je suis à la maison
  # et que c'est encore plus simple de récupérer mon IP

==== Injection des modifications de la crontab ====
<file>crontab cron</file>
=== Vérification de la crontab ===
<file>crontab -l</file>
  ...
  23 8,12,15,18 * * 1-5 /home/johnny/getip
  ...
=== Nettoyage ===
  * Pas de raison de laisser traîner son cron derrière soi, puisqu'on sait le recréer à volonté
<file>rm cron</file>